﻿// pch.h: 这是预编译标头文件。
// 下方列出的文件仅编译一次，提高了将来生成的生成性能。
// 这还将影响 IntelliSense 性能，包括代码完成和许多代码浏览功能。
// 但是，如果此处列出的文件中的任何一个在生成之间有更新，它们全部都将被重新编译。
// 请勿在此处添加要频繁更新的文件，这将使得性能优势无效。

#ifndef PCH_H
#define PCH_H

// 添加要在此处预编译的标头
#include "framework.h"
#include <map>
#include <string>
#include <vector>
#include <mutex>
#include <memory>
#include <shared_mutex>
#include <functional>
#include <condition_variable>
#include <dbghelp.h>

extern "C"
{

#include "..//third_party/ffmpeg/include/libavformat/avformat.h"
#include "..//third_party/ffmpeg/include/libavformat/avio.h"
#include "..//third_party/ffmpeg/include/libavcodec/avcodec.h"
#include "..//third_party/ffmpeg/include/libavdevice/avdevice.h"
#include "..//third_party/ffmpeg/include/libavutil/buffer.h"
#include "..//third_party/ffmpeg/include/libavutil/error.h"
#include "..//third_party/ffmpeg/include/libavutil/hwcontext.h"
#include "..//third_party/ffmpeg/include/libswscale/swscale.h"
#include "..//third_party/ffmpeg/include/libavutil/imgutils.h"
#include "..//third_party/ffmpeg/include/libavutil/audio_fifo.h"
#include "..//third_party/ffmpeg/include/libavutil/opt.h"
#include "..//third_party/ffmpeg/include/libavutil/mem.h"
#include "..//third_party/ffmpeg/include/libavutil/pixdesc.h"
#include "..//third_party/ffmpeg/include/libavutil/avassert.h"
#include "..//third_party/ffmpeg/include/libavutil/time.h"
#include "..//third_party/ffmpeg/include/libavutil/fifo.h"
#include "..//third_party/ffmpeg/include/libswresample/swresample.h"
#include "..//third_party/ffmpeg/include/libavfilter/avfilter.h"
#include "..//third_party/ffmpeg/include/libavfilter/buffersink.h"
#include "..//third_party/ffmpeg/include/libavfilter/buffersrc.h"

};
#include "../third_party/libyuv/include/libyuv.h"
#include "../third_party/jemalloc/jemalloc/jemalloc.h"
#include "../third_party/spdlog/spdlog/spdlog.h"
#include "../third_party/spdlog/spdlog/sinks/rotating_file_sink.h"
#include "../third_party/spdlog/spdlog/sinks/basic_file_sink.h"
#include "../third_party/spdlog/spdlog/sinks/stdout_sinks.h"
#include "../third_party/spdlog/spdlog/sinks/stdout_color_sinks.h"
#include "../third_party/spdlog/spdlog/sinks/daily_file_sink.h"
#include "../third_party/spdlog/spdlog/sinks/rotating_file_sink.h"

#include "framecalculate.h"
#include "clogger.h"

using cb_decode_data_fun = std::function<void(void* handle,char* data,int len,int w,int h,int type)>;
using cb_encode_data_fun = std::function<void(void* handle, char* data, int len, int type)>;
using cb_audio_data_fun = std::function<void(void* handle, char* data, int len)>;
extern CLogger g_Logger;
#endif //PCH_H


